package com.ruoyi.hr.personalFile.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class HrPersonnelFile extends BaseEntity
{
  private static final long serialVersionUID = 1L;
  /////////////////////其他信息/////////////////////
  /** 主键 */
  private Long id;
  /** 当前项目id */
  @Excel(name = "项目编号")
  private Long projectId;
  @Excel(name = "部门编号")
  private Long deptId;
  @Excel(name = "部门名称")
  private String deptName;
  @Excel(name = "紧急联系人")
  private String emergency;
  @Excel(name = "和本人关系")
  private String relation;
  @Excel(name = "紧急联系人电话")
  private String telephone;
  private Integer age;
  @Excel(name = "购买社保险种")
  private String insurance;
  @Excel(name = "保险到期时间",dateFormat = "yyyy.MM.dd")
  private Date insuranceEndDate;//保险到期时间
  private Long postId;//岗位编号
  //    @Excel(name = "员工编码")
  private String code;
  //    @Excel(name = "是否正式员工")
  private Long isRegularEmployee;
  private String nativePlace;
  //    @Excel(name = "毕业学院")
  private String graduateSchool;
  //    @Excel(name = "毕业时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date graduateDate;
  //    @Excel(name = "专业")
  private String major;
  //    @Excel(name = "学历")
  private String education;
  //    @Excel(name = "员工状态", readConverterExp = "在=职离职")
  private Long employeeState;
  //    @Excel(name = "职称")
  private String professionalTitle;
  //    @Excel(name = "离职日期", width = 30, dateFormat = "yyyy-MM-dd")
  private Date exitDate;
  //    @Excel(name = "档案编号")
  private String fileCode;
  //    @Excel(name = "人员类别")
  private String personType;


  ////////////////////////作业信息////////////////
  @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date entryDate;
  @Excel(name = "岗位")
  private String post;
  @Excel(name = "乡镇/城区")
  private String county;
  @Excel(name = "村/分组")
  private String village;
  @Excel(name = "工作范围及内容")
  private String jobArea;
  @Excel(name = "本人身体状况")
  private String health;
  @Excel(name = "合同类型")
  private String aggreementType;//合同类型
  @Excel(name = "合同开始日期",  dateFormat = "yyyy.MM.dd")
  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date aggreeStartDate;//合同开始日期
  @Excel(name = "合同结束日期",  dateFormat = "yyyy.MM.dd")
  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date aggreeEndDate;//合同结束日期

  ///////////////////基本信息///////////////
  @Excel(name = "姓名")
  private String name;
  @Excel(name = "民族")
  private String nation;
  // @Excel(name = "政治面貌")
  private String politicalStatus;
  //证件类型
  private String cardType;
  @Excel(name = "证件号码")
  private String idCardNum;
  @Excel(name = "性别", readConverterExp = "男=0,女=1,未知=2")
  private Long sex;
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
  private Date birthday;
  // @Excel(name = "婚姻状态")
  private Long maritalStatus;
  // @Excel(name = "是否已育")
  private Long bearStatus;
  @JsonFormat(pattern = "yyyy-MM")
  @Excel(name = "参加工作时间", width = 30, dateFormat = "yyyy-MM")
  private Date socialJobBeginDate;
  @Excel(name = "户籍地址")
  private String residenceAddress;
  /////////////////////////联系方式/////////////
  @Excel(name = "手机号")
  private String phone;
  //@Excel(name = "电子邮件")
  private String email;
  //@Excel(name = "qq号")
  private String qq;
  //@Excel(name = "微信号")
  private String wx;
  // @Excel(name = "居住地址")
  private String address;
  /////////////////////////工资信息
  //银行名称
  private String bankName;
  @Excel(name = "开户行")
  private String salayBank;
  @Excel(name = "工资卡卡号")
  private String salaryBankCard;
  private Long basicSalary;
  //////////////////////社保公积金信息////////

  private long socialFirstTime;//首次缴纳社保
  private String socialNumber;//社保账户
  private long accumulationFirstTime;//首次缴纳公积金
  private String accumulationNumber;//公积金账户


 //////////////审批信息///////////////////////
  /**
   * 申请人姓名
   */
  private String applyUserName;

  /**
   * 任务ID
   */
  private String taskId;

  /**
   * 任务名称
   */
  private String taskName;
  /**
   * 流程实例ID
   */
  protected String instanceId;

  /**
   * 申请时间
   */
  protected Long applyTime;

  /**
   * 实际开始时间
   */
  protected Long realityStartTime;

  /**
   * 实际结束时间
   */
  protected Long realityEndTime;
  /**
   * 流程实例状态 1 激活 2 挂起 3.撤销 4.表示结束 0 表示未启动
   */
  private String suspendState;

  //    @Excel(name = "审核状态")
  private Long reviewState;
  //    @Excel(name = "审核人")
  private Long reviewPerson;
  //    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date reviewTime;
  //    @Excel(name = "创建人")
  private Long cdpId;
  //    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date cdt;
  //    @Excel(name = "项目任务id")
  private Long projectTaskId;


  ///////////////////////////关联表信息/////////////
  private Long sysUserId;
  private String educationListJson;
  private String workExperienceListJson;
  private String emergencyListJson;
  private String familieListJson;
  private String certificateListJson;
  private String trainExperienceListJson;
  private String inductionMateriaJson;

  private List<Education> educationList;
  private List<WorkExperience> workExperienceList;
  private List<Emergency>emergencyList;
  private List<Family>familieList;
  private List<Certificate>certificateList;
  private List<TrainExperience>trainExperienceList;
  private InductionMateria inductionMateria;//入职材料
}
